package com.distortiongames.elysium.math
{
	/**
	 * defines a random number generator
	 * 
	 * This software is provided 'as-is', without any express or implied warranty.
	 * In no event will the authors be held liable for any damages arising from the use of this software.
	 *
	 * This file is released under the LGPL "GNU Lesser General Public License"
	 * More information can be found here: {@link http://www.gnu.org/copyleft/lesser.html}
	 *
	 * @author     Jordi Boggiano <j.boggiano@seld.be>
	 * @copyright  2007 Jordi Boggiano
	 * @license    http://www.gnu.org/copyleft/lesser.html  GNU Lesser General Public License
	 * @link       http://seld.be/
	 * @version    1.0.0
	 * @date       2007-12-16
	 * @package    com.seld.util
	 */
	public interface IRandGenerator
	{
		/**
		 * sets the range to be used
		 * 
		 * must be set before using 'ranged' to get random numbers
		 *
		 * @param min the range start
		 * @param max the range end
		 */
		function setRange(min:uint, max:uint):void;

		/**
		 * generates a random number between 0 and 0xffffffff
		 * 
		 * @return random int number
		 */
		function get int32():uint;

		/**
		 * generates a random number between 0 and 1
		 *
		 * @return random float number
		 */
		function get float():Number;
		
		/**
		 * generates a random number comprised in the user defined range
		 * 
		 * @return random int number
		 */
		function get ranged():uint;
	}
}